<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.org/ui"
                template="../../templates/principal.xhtml">

    <ui:define name="content" id="content">
        <p:panel id="panel" header="Bem Vindo ao Cadastro de Grupo do Usuário" style="">
            <p:dataTable id="tabGrupo" widgetVar="wtabGrupo" var="grupo" value="#{usuarioView.rolesLazy}" 
                         lazy="true" paginator="true" rows="10" paginatorPosition="top"
                         emptyMessage="Nenhum Registro Retornado ..." filterEvent="enter">

                <p:column style="width:2%">
                    <p:rowToggler />
                </p:column>

                <p:column headerText="Nome" sortBy="#{grupo.nomFantasia}" filterBy="#{grupo.nomFantasia}" style="width: 100%;">
                    <h:outputText value="#{grupo.nomFantasia}" />
                </p:column>

                <p:rowExpansion>
                    <p:dataTable id="tabModulo" widgetVar="wtabModulo" var="modulo" value="#{grupo.rolesModulosList}" 
                                 paginator="true" rows="10" paginatorPosition="top" emptyMessage="Grupo Administrador - Acesso a Todos os Modulos ..." >

                        <f:facet name="header">
                            <h:outputText value="Modulos do Grupo" />
                        </f:facet>

                        <p:column headerText="Tipo Acesso" style="width: 20%;">
                            <h:outputText value="#{modulo.dscMenu}" />
                        </p:column>
                        
                        <p:column headerText="Modulo">
                            <h:outputText value="#{modulo.dscModulo}" />
                        </p:column>
                    </p:dataTable>

                </p:rowExpansion>

                <p:column style="width: 100px;">
                    <h:panelGrid columns="2">
                        <p:commandButton id="selectButtonGrupo" update=":frmPrincipal:panel :frmPrincipal:displayGrupo :frmPrincipal:messages" rendered="#{menuView.verificaAcesso(15,'consultar')}" 
                                         icon="ui-icon-search" title="Visualizar // Alterar Grupo" oncomplete="PF('grupoDialog').show();">
                            <f:setPropertyActionListener value="#{grupo}" target="#{usuarioView.selectedRoles}" />
                            <f:setPropertyActionListener value="#{false}" target="#{menuView.salvar}" />
                        </p:commandButton>

                        <p:commandButton id="excluirButtonGrupo" update=":frmPrincipal:panel :frmPrincipal:messages" rendered="#{menuView.verificaAcesso(15,'excluir')}" 
                                         icon="ui-icon-trash" title="Excluir Grupo" oncomplete="PF('confirmation').show();">
                            <f:setPropertyActionListener value="#{grupo}" target="#{usuarioView.selectedRoles}" />
                        </p:commandButton>
                    </h:panelGrid>
                </p:column>

                <f:facet name="footer">
                    <div style="text-align: left;">
                        <p:commandButton id="incluirButtonGrupo" actionListener="#{usuarioView.preparaInserirRoles}" rendered="#{menuView.verificaAcesso(15,'incluir')}" 
                                         update=":frmPrincipal:panel :frmPrincipal:displayGrupo :frmPrincipal:messages" value="Novo Grupo"
                                         icon="ui-icon-pencil" title="Cadastrar Novo Grupo" oncomplete="PF('grupoDialog').show();">
                            <f:setPropertyActionListener value="#{true}" target="#{menuView.salvar}" />
                        </p:commandButton>
                    </div>
                </f:facet>
            </p:dataTable>

            <p:dialog id="Dialoggrupo" header="Detalhes Grupo" widgetVar="grupoDialog" resizable="false" showEffect="slide" hideEffect="slide" width="1200">
                <p:focus context="displayGrupo" />
                <p:ajax event="close" update=":frmPrincipal:panel" listener="#{menuView.fechaDialog()}" />

                <p:panelGrid id="displayGrupo" style="width: 100%;">
                    <p:row>
                        <p:column style="width: 50px;">
                            <h:outputText value="Nome:" />
                        </p:column>

                        <p:column style="width: 800px;">
                            <p:inputText id="inDscMix" value="#{usuarioView.selectedRoles.nomFantasia}" maxlength="30" style="width: 99%; font-weight:bold;" title="ATENÇÃO ... Digite Nome Unico! EX: SUPERVISOR"/>
                        </p:column>
                    </p:row>

                    <p:row>
                        <p:column colspan="2" style="width: 100%;">
                            <p:dataTable id="multiModulos" var="modulos" value="#{usuarioView.modulosDataModel}" paginator="true" rows="15"
                                         selection="#{usuarioView.selectedModulosRoles}" rowKey="#{modulos.moduloId}">

                                <f:facet name="header">
                                    <h:outputText value="Selecione os Modulos do Grupo" />
                                </f:facet>

                                <p:column selectionMode="multiple" style="width:4%" />

                                <p:column headerText="Tipo Acesso" style="width:20%">
                                    <h:outputText value="#{modulos.dscMenu}" />
                                </p:column>
                                
                                <p:column headerText="Descrição" style="width:70%">
                                    <h:outputText value="#{modulos.dscModulo}" />
                                </p:column>
                                
                                <p:column headerText="Incluir" style="width:10%; text-align: center;">
                                    <p:selectBooleanCheckbox value="#{modulos.incluir}" />
                                </p:column>
                                
                                <p:column headerText="Alterar" style="width:10%; text-align: center;">
                                    <p:selectBooleanCheckbox value="#{modulos.alterar}" />
                                </p:column>
                                
                                <p:column headerText="Excluir" style="width:10%; text-align: center;">
                                    <p:selectBooleanCheckbox value="#{modulos.excluir}" />
                                </p:column>
                                
                                <p:column headerText="Consultar" style="width:10%; text-align: center;">
                                    <p:selectBooleanCheckbox value="#{modulos.consultar}" />
                                </p:column>
                            </p:dataTable>
                        </p:column>
                    </p:row>

                    <f:facet name="footer">
                        <p:row>
                            <p:column colspan="2" style="width: 100%;">
                                <p:commandButton value="Salvar" update=":frmPrincipal:panel :frmPrincipal:messages" rendered="#{menuView.verificaAcesso(15,'incluir')}"
                                                 icon="ui-icon-disk" actionListener="#{usuarioView.inserirRoles}" oncomplete="PF('grupoDialog').hide();" />
                                <p:commandButton value="Salvar" update=":frmPrincipal:panel :frmPrincipal:messages" rendered="#{menuView.verificaAcesso(15,'alterar')}"
                                                 icon="ui-icon-disk" actionListener="#{usuarioView.alterarRoles}" oncomplete="PF('grupoDialog').hide();" />
                            </p:column>
                        </p:row>
                    </f:facet>
                </p:panelGrid>
            </p:dialog>

            <p:dialog header="Confirma a Exclusão desse Grupo?" widgetVar="confirmation">
                <p:commandButton value="Sim" update=":frmPrincipal:panel :frmPrincipal:messages" oncomplete="PF('confirmation').hide();"
                                 styleClass="ui-confirmdialog-yes" icon="ui-icon-check" actionListener="#{usuarioView.excluirRoles}" />
                <p:commandButton value="Não" onclick="PF('confirmation').hide();" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
            </p:dialog>
        </p:panel>

    </ui:define>
</ui:composition>